const express = require('express')
const app = express()
const router = require('./router')
// 注意：除了错误级别的中间件，其他的中间件，必须在路由之前进行配置
// 通过 express.json() 这个中间件，解析表单中的 JSON 格式的数据
app.use(express.json())
// 通过 express.urlencoded() 这个中间件，来解析 表单中的 url-encoded 格式的数据
app.use(express.urlencoded({ extended: false }))

app.use((req,res,next)=>{
    req.startTime = Date.now()
    console.log('第一个中间件',req.url)
    next()
})
app.use((req,res,next)=>{
    // 1.1 人为的制造错误
    // throw new Error('服务器内部发生了错误！')
    console.log('第2个中间件',req.url)
    next()
})
app.use('/api',router)
// 定义错误级别的中间件，捕获整个项目的异常错误，从而防止程序的崩溃
app.use((err,req,res,next)=>{
    console.log('错误级别中间件:'+err.message)
    res.send('错误级别中间件:'+err.message)
})
app.listen(3331,()=>console.log('服务已经启动： http://localhost:3331'))